<%--
  Created by IntelliJ IDEA.
  User: huimao
  Date: 2020/6/18
  Time: 8:43
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>管理员管理</title>
    <link rel="stylesheet" href="${pageContext.request.contextPath}/layui/css/layui.css"/>
    <style type="text/css">
        .layui-table img {
            width: auto;
            height: auto;
            max-width: 100% !important;
            max-height: 100%;
        }
    </style>
</head>
<body>
<%--添加的form表单--%>
<form class="layui-form" style="display: none;padding: 10px 50px 10px 10px" id="addForm">
    <!-- 提示：如果你不想用form，你可以换成div等任何一个普通元素 -->
    <div class="layui-form-item">
        <label class="layui-form-label">名字</label>
        <div class="layui-input-block">
            <input type="text" name="username" placeholder="请输入名字" autocomplete="off" class="layui-input"
                   lay-verify="required">
        </div>
    </div>

    <div class="layui-form-item">
        <label class="layui-form-label">密码</label>
        <div class="layui-input-block">
            <input type="text" name="password" placeholder="请输入密码" autocomplete="off" class="layui-input"
                   lay-verify="required">
        </div>
    </div>

    <div class="layui-form-item">
        <label class="layui-form-label">角色</label>
        <div class="layui-input-block">
            <%--下拉列表框--%>
            <select name="roleId">
            </select>
        </div>
    </div>

    <div class="layui-form-item">
        <div class="layui-input-block">
            <button class="layui-btn" lay-submit lay-filter="add">立即提交</button>
            <button type="reset" class="layui-btn layui-btn-primary">重置</button>
        </div>
    </div>

</form>
<%--添加的form表单结束--%>

<%--修改的form表单--%>
<form class="layui-form" style="display: none;padding: 10px 50px 10px 10px" id="updateForm" lay-filter="111">
    <!-- 提示：如果你不想用form，你可以换成div等任何一个普通元素 -->
    <input type="hidden" name="id">
    <div class="layui-form-item">
        <label class="layui-form-label">名字</label>
        <div class="layui-input-block">
            <input type="text" name="username" placeholder="请输入名字" autocomplete="off" class="layui-input"
                   lay-verify="required">
        </div>
    </div>

    <div class="layui-form-item">
        <label class="layui-form-label">密码</label>
        <div class="layui-input-block">
            <input type="text" name="password" placeholder="请输入密码" autocomplete="off" class="layui-input"
                   lay-verify="required">
        </div>
    </div>

    <div class="layui-form-item">
        <div class="layui-input-block">
            <button class="layui-btn" lay-submit lay-filter="update">立即提交</button>
            <button type="reset" class="layui-btn layui-btn-primary">重置</button>
        </div>
    </div>

</form>
<%--修改的form表单结束--%>

<%--添加按钮--%>
<button type="button" class="layui-btn" id="addButton">添加</button>
<%--添加按钮结束--%>
<%--表格--%>
<table id="bannerTable" lay-filter="bannerTable" lay-size="lg"></table>
<%--表格结束--%>

<%--table表格中的操作列 文档中的工具栏--%>
<script type="text/html" id="bannerBar">
    <a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
    <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
</script>
<%--table表格中的操作列结束--%>

<script type="text/javascript" src="${pageContext.request.contextPath}/layui/layui.js"></script>
<%--引入jquery的代码引入--%>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-1.12.4.js"></script>
<script>
    layui.use(['form', 'layer', 'table', 'upload', 'laydate'], function () {
        var table = layui.table;
        var layer = layui.layer;
        var form = layui.form;
        var upload = layui.upload;
        var laydate = layui.laydate;
        var layerIndex;


        /*初始化表格信息*/
        table.render({
            elem: '#bannerTable'
            , url: '${pageContext.request.contextPath}/admin/selectAdminAndRole' //数据接口
            , page: true //开启分页
            , limit: 5
            , limits: [5, 10]
            , cols: [[ //表头
                {field: 'id', title: 'ID', sort: true, fixed: 'left'}
                , {field: 'username', title: '名字'}
                , {field: 'password', title: '密码'}
                , {field: 'salt', title: '盐'}
                , {title: '角色',templet:function(d){
                        var s='';
                        for (var i = 0; i <d.roleList.length ; i++) {
                            s+=d.roleList[i].roleName;
                            s+='&&'
                        }
                        return s;
                        }}
                , {fixed: 'right', title: "操作", align: 'center', toolbar: '#bannerBar', fixed: 'right'} //这里的toolbar值是模板元素的选择器指向了另一个script标签，该script标签的id一定是barDemo
            ]]
        });
        /*初始化表格信息结束*/

        /*给表格的操作按钮绑定事件开始，每个按钮点击之后发生的事情*/
        table.on('tool(bannerTable)', function (obj) {
            var data = obj.data; //获得当前行数据
            var layEvent = obj.event; //获得 lay-event 对应的值（也可以是表头的 event 参数对应的值）
            if (layEvent === 'del') {
                //ajax删除
                layer.confirm("确定删除么？", function (index) {
                    $.ajax({
                        url: "${pageContext.request.contextPath}/admin/deleteAdmin",
                        data: "id=" + data.id,
                        type: "post",
                        success: function (data) {
                            //删除成功
                            layer.msg("修改成功");
                            //刷新页面
                            table.reload("bannerTable");
                        }
                    });
                })
            }else if(layEvent === 'edit'){
                //弹出层弹出修改页面
                layerIndex = layer.open({
                    type: 1,
                    title: "修改管理员信息",
                    area: "500px",
                    content: $("#updateForm")
                })
                //ajax查找出数据并且赋值给修改页面
                $.ajax({
                    url: "${pageContext.request.contextPath}/admin/selectById",
                    data: "id=" + data.id,
                    type: "post",
                    success: function (json) {
                       form.val("111",json);
                    }
                })
            }

        })
        /*给表格的操作按钮绑定事件结束*/

        /*给添加按钮设置点击事件开始*/
        $("#addButton").click(function () {
            //显示弹出层
            layerIndex = layer.open({
                type: 1,
                title: "添加管理员",
                area: "500px",
                content: $("#addForm")
            })
        })
        /*给添加按钮设置点击事件结束*/

        /*给select标签添加内容。从数据库表中把所有的角色查询出来。开始*/
        $.ajax({
            url:"${pageContext.request.contextPath}/role/selectAll",
            dataType:"json",
            success:function(data){//数据库表里面所有部门信息都在data里面
                var html="";
                //循环data所有部门，把部门的名称和部门编号拼接到option里面
                for(var i=0;i<data.length;i++){
                    html+="<option value='"+data[i].roleId+"'>"+data[i].roleName+"</option>";
                }
                //把option放入到select标签里面。
                $("[name='roleId']").html(html);
                //更新select渲染
                form.render("select");
            }
        });
        /*给select标签添加内容。从数据库表中把所有的角色查询出来。结束*/

        /*给添加表单绑定提交事件开始*/
        form.on('submit(add)', function (data) {
            var formData = $("#addForm").serialize();//自动将表单中所有的需要传递的表单元素的值封装成我们需要的格式。key=value&key=value
            //发出ajax请求。
            $.ajax({
                url: "${pageContext.request.contextPath}/admin/addAdmin",
                data: formData,
                type: "post",
                success: function (data) {
                    //关闭掉添加图书的弹出层
                    layer.close(layerIndex);
                    //把表单里面的数据清除掉。
                    //把jquery对象转换为dom对象。form类型的dom对象有reset方法可以对表单进行重置
                    $("#addForm").get(0).reset();
                    //弹出层提示添加成功，还要关闭
                    layer.msg("添加成功！");
                    //对table进行重新加载
                    table.reload("bannerTable");
                }
            });
            return false; //阻止表单跳转。如果需要表单跳转，去掉这段即可。
        });
        /*给添加表单绑定提交事件结束*/

        /*给修改表单绑定提交事件开始*/
        form.on('submit(update)', function (data) {
            var formData = $("#updateForm").serialize();//自动将表单中所有的需要传递的表单元素的值封装成我们需要的格式。key=value&key=value
            //发出ajax请求。
            $.ajax({
                url: "${pageContext.request.contextPath}/admin/updateAdmin",
                data: formData,
                type: "post",
                success: function (data) {
                    //关闭掉添加图书的弹出层
                    layer.close(layerIndex);
                    //把表单里面的数据清除掉。
                    //把jquery对象转换为dom对象。form类型的dom对象有reset方法可以对表单进行重置
                    $("#updateForm").get(0).reset();
                    //弹出层提示添加成功，还要关闭
                    layer.msg("修改成功！");
                    //对table进行重新加载
                    table.reload("bannerTable");
                }
            });
            return false; //阻止表单跳转。如果需要表单跳转，去掉这段即可。
        });
        /*给修改表单绑定提交事件结束*/


    });
</script>

</body>
</html>
